//--------------------------------------------------- // Purpose: To demonstrate several ways to define // functions to calculate the min/max. // Author: John Gauch //--------------------------------------------------- #include #include #include using namespace std; // Function that returns the max value of two values float find_max1(const float num1, const float num2) { if (num1 >= num2) return num1; else return num2; } // Function that stores max in reference parameter void find_max2(const float num1, const float num2, float & max) { if (num1 >= num2) max = num1; else max = num2; } // Function that returns the max value of three values float find_max3(const float num1, const float num2, const float num3) { if ((num1 >= num2) && (num1 >= num3)) return num1; else if ((num2 >= num1) && (num2 >= num3)) return num2; else return num3; } // Function that returns the max value of three values float find_max4(const float num1, const float num2, const float num3) { return find_max1(num1, find_max1(num2, num3)); } // Function that stores max in reference parameter void find_max5(const float num1, const float num2, const float num3, float & max) { if ((num1 >= num2) && (num1 >= num3)) max = num1; else if ((num2 >= num1) && (num2 >= num3)) max = num2; else max = num3; } // Function that stores max in reference parameter void find_max6(const float num1, const float num2, const float num3, float & max) { max = num1; if (max < num2) max = num2; if (max < num3) max = num3; } // Function that stores min/max in reference parameters void find_min_max(const float num1, const float num2, float & min, float & max) { if (num1 < num2) { min = num1; max = num2; } else { min = num2; max = num1; } } // Main program to test functions above int main() { // Create random test data srandom(time(NULL)); float val1 = random() % 100; float val2 = random() % 100; float val3 = random() % 100; float min = 0; float max = 0; // Call function and print results max = find_max1(val1, val2); cout << "\ntesting find_max1" << endl << " val1: " << val1 << endl << " val2: " << val2 << endl << " max: " << max << endl; // Call function and print results find_max2(val1, val2, max); cout << "\ntesting find_max2" << endl << " val1: " << val1 << endl << " val2: " << val2 << endl << " max: " << max << endl; // Call function and print results max = find_max4(val1, val2, val3); cout << "\ntesting find_max4" << endl << " val1: " << val1 << endl << " val2: " << val2 << endl << " val3: " << val3 << endl << " max: " << max << endl; // Call function and print results find_max6(val1, val2, val3, max); cout << "\ntesting find_max6" << endl << " val1: " << val1 << endl << " val2: " << val2 << endl << " val3: " << val3 << endl << " max: " << max << endl; // Call function and print results find_min_max(val1, val2, min, max); cout << "\ntesting find_min_max" << endl << " val1: " << val1 << endl << " val2: " << val2 << endl << " min: " << min << endl << " max: " << max << endl; return 0; }